1. Field of the Invention
This invention relates to verifying writes and more particularly relates to efficiently verifying writes.
2. Description of the Related Art
Hard disk drives are often used as non-volatile storage devices. As the capacity of hard disk drives have doubled about every nine months for many years, hard disk drives now have the capability of storing large amounts of data at low per byte costs.
A storage controller typically receives data that is to be stored to a hard disk from a computer through an internal cable or over a network from a host. The storage controller may be integrated within the hard disk drive or be external to the hard disk drive and communicate with the hard disk drive through a cable. The hard disk drive often includes one or more platters or hard disks. Data may be written to and read from each hard disk with a head.
The storage controller is often configured to report to the computer and/or host that the data is successfully written to the hard disk drive after receiving the data. Subsequent to receiving the report that the data is successfully written, the computer and/or host may overwrite the data in volatile memory. The storage controller may temporarily store the data and assure that the data is written to the hard disk drive.
A hard disk drive may occasionally have an error called a dropped write. In a dropped write, data is not correctly written to a hard disk. However, the hard disk drive reports to the computer and/or host that the data is correctly written. A dropped write can result in data corruption that is not detected for an extended period.
Hard disk drives can perform a write-with-verify operation to assure that data is correctly written to a hard disk. In the write-with-verify operation, the hard disk writes the data, then reads the written data and verifies that the data is written correctly. If the data is written incorrectly, the hard disk drive may rewrite the data. Unfortunately, performing a write-with-verify operation for each write significantly increases the time required for writes, slowing the performance of the hard disk drive.